package com.atguigu.gmall.product.client;

import com.atguigu.gmall.model.product.*;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

@FeignClient("service-product")
public interface ProductClientFeign {

    // 1、库存名称 库存图片 包含spuId 入参：skuId
    @GetMapping("/api/product/inner/getSkuInfo/{skuId}")
    public SkuInfo getSkuInfo(@PathVariable("skuId") Long skuId);

    // 2、商品分类 一级 二级 三级 入参：category3_id
    @GetMapping("/api/product/inner/getCategoryView/{category3Id}")
    public BaseCategoryView getCategoryView(@PathVariable("category3Id") Long category3Id);

    // 3、价格 库存价格
    @GetMapping("/api/product/inner/getPrice/{skuId}")
    public BigDecimal getPrice(@PathVariable("skuId") Long skuId);

    // 4、查询销售属性集合 入参：库存id skuId 商品id spuId 返回值：销售属性集合
    @GetMapping("/api/product/inner/getSpuSaleAttrListCheckBySku/{skuId}/{spuId}")
    public List<SpuSaleAttr> getSpuSaleAttrListCheckBySku(
            @PathVariable("skuId") Long skuId,
            @PathVariable("spuId") Long spuId);

    // 5、点击其他销售属性值的组合，跳转到另外的sku页面
    @GetMapping("/api/product/inner/getSkuValueIdsMap/{spuId}")
    public Map<String, String> getSkuValueIdsMap(@PathVariable("spuId") Long spuId);

    // 查询所有一二三级分类
    @GetMapping("/api/product/inner/getCategoryViewList")
    public List<BaseCategoryView> getCategoryViewList();

    // 根据品牌id查询品牌
    @GetMapping("/api/product/inner/getTrademark/{tmId}")
    public BaseTrademark getTrademark(@PathVariable(name = "tmId") Long tmId);

    // 根据SkuId查询平台属性以及属性值
    @GetMapping("/api/product/inner/getAttrValueList/{skuId}")
    public List<SkuAttrValue> getAttrValueList(@PathVariable("skuId") Long skuId);
}
